home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Morph / morphing
Text File  |  1998-10-22  |  2KB  |  53 lines

  1. morphing material mask &key (div nil) (step 1)
  2.  
  3. This function uses change-order-mask as its sub-function
  4. and it will be wise to read about that first.
  5.  
  6. It simply divides the material into longer and longer
  7. groups which means that it can reshape better and better.
  8. It uses a variant of list-a-scale by default for divisions
  9. so by default the material is divided into 1 2 3 ... groups
  10. which it then reorder with change-order-mask.
  11. So it takes change-order-mask on the first "symbol" which it
  12. can't change, then on the next two symbols where it can make
  13. very little change and so on.
  14. You need a mask of at least the same length as material if
  15. you want all the material. if you use longer mask than material
  16. it cuts of to the length of material.
  17.  
  18.  
  19. Try with visualizer and long material and first draw
  20. the mask, then the material and finally the function to
  21. see how it works.
  22. Some material works better than other.
  23. It is hard to reshape a list of 1:s  
  24. You can increase the step to get quicker effect or use
  25. your own material when you use non nil for key :div. 
  26.  
  27.  
  28. try this in visualizer:
  29. (morphing (noergaard-infinity-series 200 '(a m)) 
  30.             (gen-sin 5 0.1 200))
  31. -> . . .
  32.  
  33.  
  34. other ex. where you don't need the visualizer:
  35.  
  36. (morphing '(a b c d e f g h i j k l m n o p q r s t u v) 
  37.             (gen-sin 3 0.6 22))
  38. ->(a b c f e d g h i j o n l k m s u t r q p v)
  39.  
  40. (morphing '(a b c d e f g h i j k l m n o p q r s t u v) 
  41.             (gen-sin 3 0.6 22) :step 2)
  42. ->(a c d b h f e g i p o m k j l n v u t s q r)
  43.  
  44. here another sine-curve is used for division-pattern:
  45.  
  46. (morphing '(a b c d e f g h i j k l m n o p q r s t u v) 
  47.             (gen-sin 3 0.6 22) :div 
  48.             (vector-round 1 8 (gen-sin 1 0.3 14)))
  49. ->(a c d b h f e g i j p n l k m o q v u t r s)
  50.  
  51. when you use your own division-pattern step won't have any 
  52. effect.
  53.